package com.Questions.hash;

import java.util.*;

/**
 * 只出现一次的数字
 * 数组中只有一个元素出现了1次 剩余元素都出现了三次
 */
public class leetcode137 {
    public int singleNumber(int[] nums) {
        if(nums.length==1){
            return nums[0];
        }
        Map<Integer,Integer> map=new HashMap<>();
        for(int num:nums){
            if(map.containsKey(num)){
                map.put(num,map.get(num)+1);
            }else{
                map.put(num,1);
            }
        }
        for(Map.Entry<Integer,Integer> entry:map.entrySet()){
            if(entry.getValue()==1){
                return entry.getKey();
            }
        }
        return -1;
    }

//    public int singleNumber(int[] nums) {
//        if(nums.length==1){
//            return nums[0];
//        }
//        Arrays.sort(nums);
//        if(nums[0]!=nums[1]){
//            return nums[0];
//        }
//        if(nums[nums.length-1]!=nums[nums.length-2]){
//            return nums[nums.length-1];
//        }
//        for(int i=1;i<nums.length-1;++i){
//            if(nums[i]!=nums[i-1]&&nums[i]!=nums[i+1]){
//                return nums[i];
//            }
//        }
//        return -1;
//    }
}
